<%#=
# encoding: utf-8
#
# Redmine plugin for Document Management System "Features"
#
# Copyright (C) 2011    Vít Jonáš <vit.jonas@gmail.com>
# Copyright (C) 2012    Daniel Munn <dan.munn@munnster.co.uk>
# Copyright (C) 2011-15 Karel Pičman <karel.picman@kontron.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
%>

<% html_title(l(:dmsf)) %>

<div class="contextual">
  <% if User.current.allowed_to?(:file_manipulation, @project) %>
    <% unless @file.locked? %>
       <%= link_to(l(:button_lock),
          lock_dmsf_files_path(:id => @file),
          :title => l(:title_lock_file),
          :class => 'icon icon-dmsf-lock') %>
      <% if @file.notification %>              
        <%= link_to(l(:label_notifications_off),
          notify_deactivate_dmsf_files_path(:id => @file),
          :title => l(:title_notifications_active_deactivate),
          :class => 'icon icon-notification-on') %>
      <% else %>              
        <%= link_to(l(:label_notifications_on),
          notify_activate_dmsf_files_path(:id => @file),
          :title => l(:title_notifications_not_active_activate),
          :class => 'icon icon-notification-off') %>
      <% end %>
      <%= link_to(l(:label_link_to), 
        new_dmsf_link_path(:project_id => @project.id, :dmsf_folder_id => @file.folder ? @file.folder.id : nil, :dmsf_file_id => @file.id, :type => 'link_to'),
        :title => l(:title_create_link), 
        :class => 'icon icon-link') %>
      <%= link_to("#{l(:button_copy)}/#{l(:button_move)}", copy_file_path(:id => @file),
        :title => l(:title_copy), :class => 'icon icon-copy') %>
      <%= delete_link @file if @file_delete_allowed %>
    <% else %>
      <% if (!@file.locked_for_user? || User.current.allowed_to?(:force_file_unlock, @project)) && @file.unlockable? %>
        <%= link_to(l(:button_unlock),
          unlock_dmsf_files_path(:id => @file),
          :title => l(:title_unlock_file),
          :class => 'icon icon-dmsf-unlock')%>        
      <% end %>        
    <% end %>   
  <% end %>
</div>

<%= render(:partial => '/dmsf/path', :locals => {:folder => @file.folder, :filename => @file.title}) %>  

<%= error_messages_for('file') %>
<%= error_messages_for('revision') %>
<%= render(:partial => 'file_new_revision') if User.current.allowed_to?(:file_manipulation, @file.project) %>

<h3><%= l(:heading_revisions) %></h3>
<% @file.revisions.visible[@revision_pages.offset,@revision_pages.per_page].each do |revision| %>
  <div class="revision_box dmsf_detail dataTables_wrapper">  
    <div class="fg-toolbar ui-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix">	
      <div class="dataTables_lenght">
        <div class="controls" style="float: right">            
          <%= link_to_function image_tag('rev_downloads.png', :plugin => 'redmine_dmsf'), 
            "$('#revision_access-#{revision.id}').toggle()", 
            :title => l(:title_download_entries) %>
          <%= link_to image_tag('rev_download.png', :plugin => 'redmine_dmsf'),
            dmsf_file_path(@file, :download => revision),
            :title => l(:title_title_version_version_download, :title => h(revision.title), :version => revision.version) %>
          <%= link_to image_tag('rev_delete.png', :plugin => 'redmine_dmsf'),
            delete_revision_path(revision),
            :data => {:confirm => l(:text_are_you_sure)},
            :title => l(:title_delete_revision) if @file_delete_allowed && (@file.revisions.visible.count > 1) %>          
        </div>      
        <i><%= l(:info_revision, :rev => revision.id) %></i>
        <%= (revision.source_revision.nil? ? l(:label_created) : l(:label_changed)).downcase %>
        <%= l(:info_changed_by_user, :changed => format_time(revision.updated_at)) %>
        <%= link_to(revision.user.name, user_path(revision.user)) if revision.user %>
      </div>
    </div>
    <div style="border: 1px solid #e4e4e4;">
      <div class="clear">
        <div class="splitcontentleft">			
          <%= label_tag('', "#{l(:label_title)}:") %>
          <%= h(revision.title) %>		
        </div>
        <div class="splitcontentright">			
          <%= label_tag('', "#{l(:label_file)}:") %>
          <%= ("#{h(revision.file.folder.dmsf_path_str)}/") if revision.file.folder %><%= h(revision.name) %>			
        </div>
      </div>
      <p class="no-ident">
        <%= label_tag('', "#{l(:label_description)}:") %>
      </p>
      <div class="wiki clear" style="margin-left: 110px">
        <%= textilizable(revision.description) %>
      </div>	
      <div class="splitcontentleft">		
        <%= label_tag('', "#{l(:label_version)}:") %>
        <%= revision.major_version %>.<%= revision.minor_version %>
        <br/>
        <%= label_tag('', "#{l(:link_workflow)}:") %>
        <% wf = DmsfWorkflow.find_by_id(revision.dmsf_workflow_id) %>
        <% if wf %>
          <%= "#{wf.name} - " %>
          <%= link_to(
            revision.workflow_str(false),
            log_dmsf_workflow_path(
              :project_id => @project.id, 
              :id => wf.id,                                 
              :dmsf_file_revision_id => revision.id),
            :title => DmsfWorkflow.assignments_to_users_str(wf.next_assignments(revision.id)),
            :remote => true) %>
        <% else %>
          <%= revision.workflow_str(true) %>
        <% end %>	
      </div>
      <div class="splitcontentright clear">		
        <%= label_tag('', "#{l(:label_mime)}:") %>
        <%= h(revision.mime_type) %>&nbsp;
        <br/>
        <%= label_tag('', "#{l(:label_size)}:") %>
        <%= number_to_human_size(revision.size) %>		
      </div>	
      <div class="no-ident clear">
        <%= render 'dmsf/custom_fields', :object => revision %>
      </div>
      <p class="no-ident">
        <%= label_tag('', "#{l(:label_comment)}:") %>
      </p>
      <div class="wiki clear" style="margin-left: 110px">
        <%= textilizable(revision.comment) %>
      </div>	     	           
      <div id="<%= "revision_access-#{revision.id}" %>" style="display:none">        
        <%= render(:partial => 'revision_access', :locals => {:revision => revision}) if User.current.allowed_to?(:file_manipulation, @file.project) %>        
      </div>    
    </div>
  </div>  
  <br/>  
<% end %>

<p class="pagination"><%= pagination_links_full @revision_pages, @file.revisions.visible.count %></p>

<%
  url = 'jquery.dataTables/en.json'
  url = "jquery.dataTables/#{I18n.locale.to_s.downcase}.json" if I18n.locale && !I18n.locale.to_s.match(/^en.*/)
%>

<script type="text/javascript">
  $('a.delete-revision').click(function(event) {
    if(!window.confirm('<%= l(:text_are_you_sure) %>')) {
      event.preventDefault();
    }
  });

  $('a.delete-entry').click(function(event) {
    if(!window.confirm('<%= l(:text_are_you_sure) %>')) {
      event.preventDefault();      
    }
  });

  $('#file_upload').change(function() {
    if($("input[name='version']:checked").val() == '0') {
      $('#fileMinorVersionRadio').prop('checked', true); 
    }
    $('#fileSameVersionRadio').prop('disabled', true); 
  });  

  $('#newRevisionFormContentToggle').click(function() {
    if($('#newRevisionFormContent').is(':visible')) {
      $(this).text('[+]');
      $('#newRevisionFormContent').hide();
    }
    else {
      $(this).text('[-]');
      $('#newRevisionFormContent').show();
    }    
  });

  $('.access-table').dataTable({
    'bJQueryUI': true,
    'oLanguage': {
      'sUrl': '/plugin_assets/<%= :redmine_dmsf %>/javascripts/<%= url %>'	
    }
  });
</script>
<% if @revision.valid? && @file.valid? %>
  <script type="text/javascript">
    $('#newRevisionFormContentToggle').text('[+]');    
    $('#newRevisionFormContent').hide();    
  </script>
<% end %>

<% content_for :header_tags do %>  
  <%= stylesheet_link_tag 'jquery.dataTables/jquery-ui.dataTables.css', :plugin => 'redmine_dmsf' %>  
  <%= javascript_include_tag 'jquery.dataTables/jquery.dataTables.min.js', :plugin => 'redmine_dmsf' %>  
<% end %>